 /*******************************************************************************
  * Copyright (c) 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
  * yyyymmdd bug Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070201 154100 pmoogk@ca.ibm.com - Peter Moogk, Port internet code from WTP to Eclipse base.
  *******************************************************************************/
 package org.eclipse.ui.internal.net;

 import org.eclipse.core.net.proxy.IProxyService;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 import org.osgi.util.tracker.ServiceTracker;

 /**
  * The activator class controls the plug-in life cycle
  */
 public class Activator extends AbstractUIPlugin {

     // The plug-in ID
 public static final String PLUGIN_ID = "org.eclipse.ui.net"; //$NON-NLS-1$

     // The shared instance
 private static Activator plugin;

     private ServiceTracker tracker;

     /**
      * The constructor
      */
     public Activator() {
         plugin = this;
     }

     /**
      * Returns the shared instance
      *
      * @return the shared instance
      */
     public static Activator getDefault() {
         return plugin;
     }

     /**
      * Return the {@link IProxyService} or <code>null</code> if the service is
      * not available.
      *
      * @return the {@link IProxyService} or <code>null</code>
      */
     public IProxyService getProxyService() {
         return (IProxyService) tracker.getService();
     }

     public void start(BundleContext context) throws Exception {
         super.start(context);
         tracker = new ServiceTracker(getBundle().getBundleContext(),
                 IProxyService.class.getName(), null);
         tracker.open();
     }

     public void stop(BundleContext context) throws Exception {
         plugin = null;
         super.stop(context);
         tracker.close();
     }
 }

